The transmission control protocol (TCP) provides a mechanism for node-to-node connectivity in a packet-based network, such as the Internet. Congestion in a network occurs when a node is carrying more data than it can handle. TCP provides a number of congestion control protocols, from TCP Tahoe to the more modern CUBIC and Compound TCP, and finally to optimal computer-generated TCP implementations. All of the protocols, with the exception of optimal computer-generated TCP, use measurements of either packet loss or an increase in round trip time (RTT) delay to estimate the congestion state of the network. In addition, there have been a number of protocols that use a combination of both of these measurements to attempt to implicitly distinguish channel losses from congestion losses or correct losses with channel coding. However, even these protocols are not able to perform well in moderate to extremely lossy networks.
Sole reliance on packet loss and round trip time (RTT) as congestion indicators results in three important fundamental limitations in transport protocols.
Poor Performance in Lossy Networks.
Traditionally, the primary reason TCP protocols perform poorly in lossy networks is that there is no way to distinguish between packet losses due to congestion and losses due to poor channel conditions. Without using explicit messaging from within the network, most end-to-end transport protocols are forced to assume that a channel loss is due to congestion. One way to control congestion is through the use of a congestion window, where the congestion window specifies the maximum number of unacknowledged packets permitted in the network at any given time. Thus, the congestion window may be reduced even though the poor performance is due to poor channel conditions. While protocols exist that attempt to estimate the capacity and reduce the impact of channel losses on throughput performance, packet loss is still the main feedback mechanism used to identify congestion. Since TCP protocols must prevent network-wide congestion collapse, this results in generally pessimistic performance that severely limits throughput in lossy networks.
Susceptibility to Intelligent Jamming.
There have been a number of studies showing that the TCP congestion control protocol is extremely vulnerable to a “smart” jammer. A smart malicious node can interrupt a small number of packets and cause the server to respond as if the network is congested. Packet loss is very easy for an external node (i.e., a node not belonging to the network) to manipulate, which can result in severe throughput reduction with minimal jamming power.
Path Dependence.
Since both packet loss and the RTT are path-based measurements and assume that a) packets will experience the same network conditions previous packets experienced, and b) changes in window size or transmission rate will have a direct impact on these conditions, they both implicitly assume that paths in the network are stable. This assumption also holds for “multi-path” TCP protocols. However, the stable path assumption may be violated, especially for more recent opportunistic and cooperative routing protocols, resulting in extremely poor TCP performance.